package co.com.desarrollo.pedidos.services;

import java.util.List;

import co.com.desarrollo.pedidos.entities.Confisys;
import co.com.desarrollo.pedidos.entities.EstadoPedido;
import co.com.desarrollo.pedidos.entities.Rol;
import co.com.desarrollo.pedidos.services.exceptions.ConfisysNotFoundException;
import co.com.desarrollo.pedidos.services.exceptions.EstadoPedidoNotFoundException;
import co.com.desarrollo.pedidos.services.exceptions.RolNotFoundException;

public interface GeneralService {
	
	/*CONFISYS*/
	public Confisys setConfisys(Confisys confisys);
	public Confisys getConfisysById(Confisys confisys);
	public Confisys getConfisysByName(Confisys confisys);
	public List<Confisys> getAllConfisys();
	public void deleteConfisysById(Confisys confisys);
	
	/*ROL*/
	public Rol setRol(Rol rol);
	public Rol getRolById(Rol rol);
	public Rol getRolByName(Rol rol);
	public List<Rol> getAllRoles();
	public void deleteRolById(Rol rol);
	
	/*ESTADO-PEDIDOS*/
	public EstadoPedido setEstadoPedido(EstadoPedido estadoPedido);
	public EstadoPedido getEstadoPedidoById(EstadoPedido estadoPedido);
	public EstadoPedido getEstadoPedidoByName(EstadoPedido estadoPedido);
	public List<EstadoPedido> getAllEstadosPedido();
	public void deleteEstadoPedidoById(EstadoPedido estadoPedido);
	
	
	/*FINDERS-BOTH*/
	public EstadoPedido findEstadoPedidoMethods(EstadoPedido estadoPedido) throws EstadoPedidoNotFoundException;
	public Rol findRolMethods(Rol rol) throws RolNotFoundException;
	public Confisys findConfisysMethods(Confisys confisys) throws ConfisysNotFoundException;
}
